Establishing a communication session in a modern Internet protocol (IP) based communication system typically involves the transmission, reception and processing of multiple signaling messages by multiple signaling entities. For example, in a session initiation protocol (SIP) network, establishing a session between two SIP endpoints A and B typically requires that an invite message be sent from endpoint A to server S1, which would either forward it, or create another SIP signaling message to either a server S2 or the endpoint B. S2 would have the same choice, potentially introducing server S3, or looping back to S1, etc. Communications systems typically employ recovery mechanisms such as selection of alternate routes, or indicating to users that the call cannot be completed.
The time it takes for the setup process to complete, either successfully or with the system notifying the user that it cannot provide the required service, has a significant impact on the usability and level of service the communications system offers to its users. The complex process of establishing a communications session can fail at any stage. Communications systems are often required to provide service to a very large number of users, and might be required to process thousands of sessions per second. As a result, a system can reach saturation conditions, in which resources are not available, degrading service to existing as well as new calls.
In order to address such overload conditions, a number of different approaches have been developed. For example, by preemptive deny/block actions taken as the communications system approaches a saturation level, the communications system can safeguard resources that may be required by existing calls. However, such overload mitigation mechanisms do not take into account the complex call flow involved in setting up sequenced SIP Internet Protocol multimedia subsystems (IMS) calls. In particular, such mechanisms ignore the relationship between the phase of the call setup and the impact on resource wastage and response time a drop or block decision might have.
In order to avoid or minimize such waste, methods have been developed for overload throttling that differentiate between different SIP messages within a SIP session. More particularly, a higher precedence may be given to SIP reply messages than is given to SIP invite messages. However, this approach assumes that a SIP session and a SIP call are one and the same, which is not the case in a sequenced application. Accordingly, such an approach can still result in significant waste of resources.